In a clustered network environment, two or more network devices typically manage the flow of communication between various external endpoints. For example, a user device in one enterprise system may wish to communicate with a user device of another enterprise system. These two user devices may establish a data communication via the clustered network environment. One or more of the network devices in the cluster may assist in the management of the data flow for this data communication.
In certain cases, users of these user devices may wish to establish a voice-based communication, such as a Voice-Over-Internet-Protocol, or VoIP, call. In managing a VoIP call, network devices within a clustered environment may need to maintain call state information for the duration of that call. Such state information may include session information, address translation information, pinhole information, or other call-related information. In a load-balanced environment, or in a cluster that routes information through various different devices, it is possible that multiple different network devices within the cluster will receive and handle data packets associated with one given call. In these scenarios, state information for the call needs to be synchronized between all of such devices. As a result, due to possible latency in the system, it is possible that one network device may receive a packet for the call before its state has been synchronized, meaning that the packet could be dropped, or that the security of the call could become compromised.